const qs=require('querystring')//用来解码
module.exports=()=>{//抛出一个函数，函数的返回值是一个异步函数
    return async (ctx,next)=>{
        // console.log(ctx)
        if(ctx.method==="POST"){//post请求返回结果
            ctx.request.body=await bodyParser(ctx)
        }
        await next()//必须执行下一个中间件
    }
}
function bodyParser(ctx){//封装结果，也就是post请求参数
    return new Promise((resolve,reject)=>{
        let str="";
        ctx.req.on('data',chunk=>{
            str+=chunk
        })
        ctx.req.on('end',chunk=>{
            // console.log(ctx)查看字符编码
            if(ctx.header["content-type"]==="application/x-www-form-urlencoded"){//判断字符编码类型
                resolve(qs.parse(str))
            }else{
                resolve(JSON.parse(str))
            }
        })
    })
}